﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace GestorDeFlotasDesktop.AbmUsuario
{
    public partial class AltaUsuario : Form
    {
        public AltaUsuario()
        {
            InitializeComponent();
        }

        private void buttonSalir_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        #region completarCampos
        public void completarCampos()
        {

            if (textBoxUsuario.Text == string.Empty)
            {
                labelUsuario.ForeColor = Color.Red;
                //labelUsuario.Text = "* Campo Obligatorio";
            }
            if (textBoxPass.Text == string.Empty)
            {
                labelPass.ForeColor = Color.Red;
                //labelPass.Text = "* Campo Obligatorio";
            }
        }
        #endregion

        #region ningunNull
        public int ningunNull()
        {
            if (textBoxUsuario.Text == string.Empty || textBoxPass.Text == string.Empty)
                return 1;
            else
                return 0;
        }

        #endregion

        private void buttonGuardar_Click(object sender, EventArgs e)
        {
            if (ningunNull() == 0)
            {
                sqlManager.Conectar();
                int resultado = sqlManager.AgregarUsuario(textBoxUsuario.Text, encryptor.Encriptar(textBoxPass.Text));
                sqlManager.Desconectar();
                if (resultado >= 1)
                {
                    #region agregandoUsuario
                    sqlManager.Conectar();
                    for (int i = 0; i <= listaRoles.CheckedItems.Count - 1; i++)
                    {
                        sqlManager.DarRolUsuario(textBoxUsuario.Text, listaRoles.CheckedItems[i].ToString());
                    }
                    sqlManager.Desconectar();

                    MessageBox.Show("Alta satisfactoria", "Log", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    DialogResult respuesta = MessageBox.Show("¿Desea dar de Alta otro Usuario?", "Alta Usuario", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                    if (respuesta == DialogResult.Yes)
                    {
                        textBoxPass.Text = string.Empty;
                        textBoxUsuario.Text = string.Empty;
                    }
                    else
                    {
                        this.Close();
                    }
                    #endregion
                }
                else
                {
                    MessageBox.Show("Asegurese de no ingresar un Usuario ya existente", "Alta Usuario", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            else
                MessageBox.Show("Debe Seleccionar el Usuario y completar todos los campos", "Alta Usuario", MessageBoxButtons.OK, MessageBoxIcon.Error);

            completarCampos();
        }

        #region llenarRoles
        private void llenarRoles()
        {
            sqlManager.Conectar();
            DataTable dtrol = sqlManager.ObtenerRoles();
            sqlManager.Desconectar();
            
            foreach (DataRow fila in dtrol.Rows)
            {
                listaRoles.Items.Add(fila["Rol"]);
            }
            
            listaRoles.ClearSelected();

        }
        #endregion

        private void AltaUsuario_Load(object sender, EventArgs e)
        {
            llenarRoles();//en la list checked box
        }
    }
}
